#pragma once

#include "ModuleDefine.h"
#include "TinyLogger.h"

#include "TinyCCDBMgr.h"
#include "TinyCCClientMgr.h"
#include "TinyTCPIF.h"
#include "TinyTimerPool.h"
#include "TinyDevicePool.h"
#include "TalkStatePool.h"
#include "TinyTalkObjectPool.h"
#include "FlowPool.h"
#include <string>

//add dbmgr,dblogmgr,devicemgr global var as singletion mode.




#define g_Logger Loki::SingletonHolder<CTinyLogger,Loki::CreateUsingNew>::Instance()

#define g_TinyCCDBMgr  Loki::SingletonHolder<DBLayer::CTinyCCDBMgr,Loki::CreateUsingNew>::Instance()
#define g_TinyCCClientMgr  Loki::SingletonHolder<RuntimeMgr::CTinyCCClientMgr,Loki::CreateUsingNew>::Instance()
#define g_TinyTCPIF  Loki::SingletonHolder<CTinyTCPIF,Loki::CreateUsingNew>::Instance()
#define g_TimerPool  Loki::SingletonHolder<CTinyTimerPool<std::string>,Loki::CreateUsingNew>::Instance()
#define g_DevicePool Loki::SingletonHolder<HAL::CTinyDevicePool,Loki::CreateUsingNew>::Instance()
#define g_TalkObjectPool Loki::SingletonHolder<TalkProcess::CTinyTalkObjectPool,Loki::CreateUsingNew>::Instance()
#define g_TalkStatePool Loki::SingletonHolder<TalkProcess::CTalkStatePool,Loki::CreateUsingNew>::Instance()
#define g_FlowPool Loki::SingletonHolder<IVRFlow::CFlowPool,Loki::CreateUsingNew>::Instance()